﻿using System.Linq;

namespace GigaSite.Domain.Entities
{
    /// <summary>
    /// Пользователь системы
    /// </summary>
    public partial class User
    {
        /// <summary>
        /// Возвращает имя пользователя, которое можно отображать в гуях
        /// </summary>
        /// <returns>Имя пользователя - строка</returns>
        public string GetDisplayName()
        {
            // Проверяем ник
            if (!string.IsNullOrWhiteSpace(Nickname))
            {
                return Nickname;
            }

            // Проверяем фамилию
            var fio = string.Format("{0} {1}", FirstName, LastName);
            if (!string.IsNullOrWhiteSpace(fio))
            {
                return fio;
            }

            // Проверяем email
            if (!string.IsNullOrWhiteSpace(Email))
            {
                return Email;
            }

            // Как крайний случай - возвращаем Identity
            return Identity;
        }

        /// <summary>
        /// Проверяет добавлено ли в избранное объявление с указанным идентификатором
        /// </summary>
        /// <param name="adsId">Идентификатор объявления</param>
        /// <returns>true если добавлено, иначе false</returns>
        public bool AdsInFavourites(long adsId)
        {
            return this.AdsToUserMappings.Any(a => a.AdvsId == adsId);
        }
    }
}